1. Field
The disclosure relates to a method, system, and article of manufacture for adjustment of destage rate based on read and write response time requirements.
2. Background
A storage controller may control a plurality of storage devices that may include hard disks, tapes, etc. A cache may also be maintained by the storage controller, where the cache may comprise a high speed storage that is accessible more quickly in comparison to certain other storage devices, such as, hard disks, tapes, etc. However, the total amount of storage capacity of the cache may be relatively smaller in comparison to the storage capacity of certain other storage devices, such as, hard disks, etc., that are controlled by the storage controller. The cache may be comprised of one or more of random access memory (RAM), non-volatile storage device (NVS), read cache, write cache, etc., that may interoperate with each other in different ways. The NVS may be comprised of a battery backed-up random access memory and may allow write operations to be performed at a high speed. The storage controller may manage Input/Output (I/O) requests from networked hosts to the plurality of storage devices.
Caching techniques implemented by the storage controller assist in hiding I/O latency. The cache may comprise a high speed memory or storage device used to reduce the effective time required to read data from or write data to a lower speed memory or device. The cache is used for rapid access to data staged from external storage to service read data access requests, and to provide buffering of modified data. Write requests are written to the cache and then written (i.e., destaged) to the external storage devices.
NVS was introduced for allowing fast writes. Generally, in the absence of NVS, data writes may have to be synchronously written (i.e., destaged) directly to the storage device to ensure consistency, correctness, and persistence. Otherwise failure of the server may cause data stored in the cache to be lost. Generally the rate of host writes exceeds the speed of the storage devices, hence without NVS the rate of data transfer to storage devices may be slow. NVS enables fast writes to cache where the writes are mirrored to and stored safely in the NVS until the writes can be transferred to the external storage device. The data is destaged from cache later (and discarded from NVS) in an asynchronous fashion thus hiding the write latency of the storage device. The cache and NVS typically store updates intended for multiple storage devices. To guarantee continued low latency for writes, the data in the NVS may have to be drained so as to ensure that there is always some empty space for incoming writes; otherwise, follow-on writes may become effectively synchronous, which may adversely impact the response time for host writes. On the other hand, if the writes are drained too aggressively, then the benefits of write caching may not be fully exploited since the average amount of NVS cache utilized may be low.
Task Control Block (TCB) is a data structure in the operating system kernel containing the information needed to manage a particular process. Storage controllers may move information to and from storage devices, and to and from the cache (including the NVS) by using TCBs to manage the movement of data. When a write request issues from a host computer to a storage controller, a TCB may be allocated from the operating system code. The TCB is used to maintain information about the write process from beginning to end as data to be written is passed from the host computer through the cache to the secondary storage devices. If the cache is full, the TCB may be queued until existing data in the cache can be destaged (i.e., written to secondary storage devices), in order to free up space. The destage operations may involve the moving of information from cache to a RAID rank and destage TCBs may be allocated for performing the destage operations.